#!/bin/sh
# PCP QA Test No. 729
# Exercise fixes for a few python API segfaults
#
# Copyright (c) 2014 Red Hat.
#

seq=`basename $0`
echo "QA output created by $seq"

. ./common.python

$python -c 'from pcp import pmapi' 2>/dev/null
test $? -eq 0 || _notrun 'Python pcp pmapi module is not installed'

status=1	# failure is the default!
trap "cd $here; rm -rf $tmp.*; exit \$status" 0 1 2 3 15

cat > $tmp.units <<EOF
import pcp.pmapi
from pcp.pmapi import c_api

fname = 'archives/bug_v2'
context = pcp.pmapi.pmContext(c_api.PM_CONTEXT_ARCHIVE, fname)
pmids = context.pmLookupName(['proc.nprocs'])
descs = context.pmLookupDescs(pmids[0])
print('%s%s' % (descs[0].contents.units, 'Completed safely'))
EOF

cat > $tmp.parse << EOF
import pcp.pmapi
context = pcp.pmapi.pmContext(target='local:')
try:
  print(context.pmParseInterval(''))
except pcp.pmapi.pmErr as error:
  print('Completed safely')
EOF

# real QA test starts here
echo Exercising units string
$python $tmp.units
echo Exercising interval parsing
$python $tmp.parse

# success, all done
status=0
exit
